package com.lgf.tool.file;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import com.lgf.entity.CodeFileVo;
import com.lgf.vo.CodeFileTypeEnum;

import lombok.extern.slf4j.Slf4j;

/**
 * 代码文件处理
 * 
 * @author zhouz
 * @date 2019年11月19日
 *
 */
@Slf4j
public class CodeFileHelper {
	/**
	 * 检查符合要求的文件
	 * 
	 * @author zhouz
	 * @date 2019年11月19日
	 * 
	 * @param selectFiles
	 * @param types
	 * @return
	 */
	public static List<CodeFileVo> checkCodeFile(Set<String> types, File... selectFiles) {
		List<CodeFileVo> files = new ArrayList<CodeFileVo>();
		log.info("选择了" + selectFiles.length + "个文件");
		for (File sf : selectFiles) {
			if (sf.isDirectory()) {
				files.addAll(checkCodeFile(types, sf.listFiles()));
			}
			CodeFileTypeEnum type = CodeFileTypeEnum.getType(sf);
			if (type == null) {
				continue;
			}
			if (types.contains(type.getText())) {
				CodeFileVo fv = new CodeFileVo();
				fv.setFile(sf);
				fv.setType(type);
				files.add(fv);
			}
		}
		return files;
	}

}
